iT邦幫忙

2024 iThome 鐵人賽

DAY 23
0
生成式 AI

RAG自己來系列:客服機器人系列 第 23

[Day 23] 新增附屬功能 - 投票系統(上)

  • 分享至 

  • xImage
  •  

前幾天有提到說為何要使用 gradio 的 4.32.1 版本,因為在今天要做的投票功能,使用舊的版本前端頁面的運作規則會比較符合我們的投票功能

在新增了投票功能後,開發者更能理解目前系統哪邊還需要改進,其實現方法也很簡單,只要定義 chatbot 的 like 行為即可

今天我們先來實作當使用者案讚的行為,當使用者點選「讚」的行為時,希望在下次問同樣的問題時,可以回覆出相同的結果

  • main.py

    主要新增 like 的行為

    chatbot.like(File.vote, inputs=[chatbot])
    
  • utils.py

    Chat 中的 send_query 我們先檢查使用者詢問的問題是否有出現在 csv 中,File 中則新增一個函數,負責處理當使用者點選投票按鈕的行為

    ...
    class Chat:
      class Chat:
        def send_query(search_content: str, history: list, temperature: float, k: int):
            history.append([search_content, ""])
            csv = pd.read_csv("saved_answer.csv")
            if search_content in csv["Q"].values:
                history[-1][1] = csv[csv["Q"] == search_content]["A"].values[0]
                yield "", history
                return True
            ...
    
    class File:
        ...
        def vote(event: gr.LikeData, history: list):
            if event.liked:
                if not os.path.exists("saved_answer.csv"):
                    pd.DataFrame(columns=["Q", "A"]).to_csv("saved_answer.csv", index=False)
    
                df = pd.read_csv("saved_answer.csv")
                data = {
                    "Q": history[-1][0],
                    "A": history[-1][1]
                }
                df = pd.concat([df, pd.DataFrame(data, index=[0])], ignore_index=True)
                df.to_csv("saved_answer.csv", index=False, encoding="utf-8-sig")
                gr.Info("謝謝您的反饋")
    

這時我們詢問一個問題後,在對話紀錄中出現了「👍」與「👎」的圖示,當我們點擊「👍」的圖示後右上角跳出一個彈出視窗寫著我們定義的gr.Info()內的文字

https://ithelp.ithome.com.tw/upload/images/20241001/20146555L4yjhQVG7I.png

同時確認 save_answer.csv 中的內容

https://ithelp.ithome.com.tw/upload/images/20241001/20146555GyXGc8i9Od.png

這時我們如果再問同一個問題,就不經過 Qdrant 與 LLM 的處理了


上一篇
[Day 22] 新增設定參數區塊
下一篇
[Day 24] 新增附屬功能 - 投票系統(下)
系列文
RAG自己來系列:客服機器人30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言